---------------------------------------
| JJJJJ AAA CCC K  K N  N III FFF EEE |
|   J   A A C   K K  NN N  I  F   E   |
|   J   AAA C   KK   N NN  I  FF  EE  |
| J J   A A C   K K  N  N  I  F   E   |
| JJJ   A A CCC K  K N  N III F   EEE |
------ Jackknife v1.0 for TI-83 -------
:::::::: by Jeff Theusch, 2003 ::::::::


I Intro

Jackknife is a program manipulator, a shell, and a security
tool!  While very large (over 3000 bytes) Jackknife is full
of useful features.  If you dislike its size, feel free to
use any routines from the included source code to create
your own smaller-scale project, but please give credit where
credit is due!

1 Testing

You the user are encouraged to send feedback about this
version of Jackknife.  Information gotten from
various users about bugs, stability, and user interface
is essential to progress to future stable versions.

Send feedback to <telepath75@hotmail.com>.  Note that this
software has proven stable by the developer, but anything
can happen.  Use at your own risk!  Consider the following
items when testing Jackknife:
- Test software using as many different ROM versions as
 possible.  Include the ROM version with your feedback.
- Test software using as many possible combinations as
 possible.  Try every function, if possible, with each
 feature enabled, disabled, etc.  Try other normal TI-OS
 functions with the Jackknife custom interrupt routine
 enabled and interrupt functions active.
- It is known that the calculator can, and usually does,
 crash when assembly programs are run outside of Jackknife
 with Jackknife interrupts enabled.  This is due to the
 fact that many assembly programs use the saferam area
 occupied by the interrupt code.  Practice caution, and
 disable Jackknife interrupts BEFORE running outside
 assembly programs!
- Test many different programs with the shell features of
 Jackknife.  Try AShell, SOS, AND Ion programs, with AND
 without library use!
- Are there features that were left out?
- Is the documentation unclear or incomplete?

** I did not include in Jackknife anything that can
   otherwise be done in TI-OS.  Jackknife cannot delete
   variables, change contrast, or run basic programs!

II Requirements

TI-83 graphing calculator.

Link cable with link software.  For more information see
<www.ticalc.org>.


III Installation

** The first two steps are a precaution but not required **
1 Backup variables on your calc that you want to keep.
2 Reset your calculator (<2nd><+><5><1><2>).

3 Send the installer file (ZJNINST.83P) to the calc.
4 Run the installer from the home screen by typing
 "Send(9prgmZJNINST".  The Send( token can be found
 in Catalog.
5 When prompted to do so, press enter to install.
 The installer program deletes itself while creating
 several other programs.  This effectively prevents
 others from transferring Jackknife without your permission.
 If you want to distribute Jackknife, re-send the installer
 file to your calculator.
6 Jackknife can now be started by running "prgmJACKNIFE".


IV Usage

When Jackknife is launched, the program manager appears.  As
a rule, pressing <CLEAR> will generally exit from the current
task, except for the password set and AnsString set routines,
which require completion for correct operation of Jackknife.
Pressing <CLEAR> at the main menu will return the user to
TI-OS.

1 Program Manager

Pressing <1> at the main menu starts the program manager.
A list of all programs on your calculator should appear,
including those that are hidden.  Six programs can be listed
per screen.  If less than six programs can be listed for
a screen, a row of dots is displayed under the last list
entry.  Use the up and down keys to move the cursor up and
down the list of programs.

a Lock

Press <Y=> to lock or unlock the selected program.  An "L"
will appear to the left of the program name if it is
locked, and the "L" will be absent if it is unlocked.  A
locked program cannot be edited by TI-OS.

b Hide

Press <Window> to hide or unhide (show) the selected program.
An "H" will appear to the left of the program name if it is
hidden, and the "H" will be absent if it is visible.  A
hidden program is not present in the program and delete
menus of TI-OS.

** Note: The program "PJN" is the Jackknife program code and
 cannot be unhidden or renamed by Jackknife.  It should not
 be unhidden or renamed by any other utility.
   Also: Do not hide ZJNLOAD without an AnsString active (IV.2.d).
 Doing so would deny access to Jackknife, and your calculator
 would need to be reset to regain space taken up by hidden
 programs.  Use common sense!


 
c Rename

Press <Zoom> to rename the selected program.
- Type the new name of the program.
- The first character of the new name must be a letter or
 theta (same as with TI-OS).
- The remaining seven characters of the new name can be
 letters, numbers, or theta (same as with TI-OS).
- Press <Alpha> to switch between Letter and Number entry.
- Press <Del> to delete the last character entered.
- Press <Enter> when finished entering the new name.
- Press <Clear> to cancel the rename without modification.

** Note: The program "PJN" is the Jackknife program code and
 cannot be unhidden or renamed by Jackknife.  It should not
 be unhidden or renamed by any other utility.

d Execute

Ion-, SOS-, and AShell-compatible programs will have an "I,"
"S," and "A" (respecively) to the right of their program
names in the Program Manager.  Pressing <Trace> will attempt
to execute the selected programs.  An SOS-compatible program
simply does not execute if its library is unavailable.

e Next Page

Press <Graph> to display the next screenful of programs.


2 Passcodes

Jackknife has password protection capabilities, as well as
a feature that, when activated, allows you to show all
hidden programs with a home screen command.  The passcode
menu is only available if interrupts are enabled (IV.3.a).

a Set Password

Press <1> to set the system password.  This will overwrite
the old password.  The default password is <On><On><On>.

When the prompt "Enter 3 Keys" appears, press any three
calculator buttons in the sequence you want to designate
as your password.  <On> can be used.

When the prompt "Reenter 3 Keys" appears, pressing the
same three-key-sequence will set the new password.
Pressing a different sequence will restart the "Set
Password" sequence from the beginning.

** There are 50 keys on the TI-83.  50^3=125,000 possible
   passwords.  It is impractical to manually crack this
   password scheme.

b Password protect upon Power-On

Press <2> to activate or deactivate this feature.  A dot
will appear to the left of the number "2" if the feature
is active.

When active, Power-On password protection will prompt you
for a password when the On key is pressed after 2nd+Off or
AutoPowerDown.  A small key icon will display in the
bottom right corner of the screen.  Entering the correct
3-key-sequence will cause the key icon to disappear, and
normal calculator function can resume.  Entering the
incorrect sequence or elapsing too much time will cause
the calculator to power off again.

c Password protect Jackknife

Press <3> to activate or deactivate this feature.  A dot
will appear to the left of the number "3" if the feature
is active.

When active, Jackknife password protection will prompt you
for a password when Jackknife is launched.  Entering the
correct 3-key-sequence will cause Jackknife main menu to
appear.  Entering the incorrect sequence will return you
to TI-OS.

d Set AnsString

Press <4> to set the AnsString code.  Enter four "alpha"
characters (any letter or theta) to set the new AnsString.
The default AnsString is "JKNF".

e Activate AnsString

Press <5> to activate the AnsString feature.  A dot will
appear to the left of the number "5" if the feature is
active.

When AnsString is active, follow this procedure from the
home screen to show all hidden programs:
i Activate the Alpha-lock.  <2nd><Alpha>
ii Type a quotation mark.   <+>
iii Type the four characters
   defined as your AnsString. < >< >< >< >
iv Press the Enter key to
  set Ans to the String you <Enter>
  specified.
v Wait for at least 3 seconds.

** This feature is useful if you accidentally hide ZJNLOAD,
   or if you *ahem* want to hide all programs on your calc,
   and then show them later.


3 Interrupt

The invisible Jackknife custom interrupt routine is what
drives the AnsString and Power-on password protection
functions.  It also allows the user to set a shorter time
for APD (Automatic Power-Down).

a Disable Interrupt

Press <1> to enable or disable the Jackknife custom
interrupt.  With the interrupt enabled, one can access the
password menu and change the APD time, as described below.
With the interrupt disabled, one can run Venus and ZASMLOAD
programs safely outside of Jackknife (assuming they are stable
in the first place).  A dot to the left of the number "1" 
indicates that the Jackknife custom interrupt is disabled.

** Disable interrupts before using the linkport, running
 assembly programs outside of Jackknife, and resetting your
 calculator.  Failure to do so leads to unpredictable results!

b APD Time

Pressing the Up- and Down-keys allows you to change the time
it takes for the calculator to power down.  As you press the
keys, the number to the right of "2:" changes, unless the
Jackknife custom interrupt is disabled, in which case the
number will not change.

The APD time can range from 116 (the TI-OS default) to 8
(about 14 seconds).

** A lower APD time with power-on password protection enabled
 means greater security!


V Warnings

- Use this utility at your own risk!
- Do NOT install ION or SOS while Jackknife is installed!
 This is redundant and might lead to unpredictable results!
- Do NOT run ZASMLOAD or VENUS programs without Jackknife
 interrupts disabled!  Saferam areas occupied by the
 interrupt code may be altered, leading to unpredictable
 results (crashing the calculator)!
- Do NOT use Jackknife to CHEAT in school (though you could)!

VI Credits

Jackknife is created almost entirely from scratch by
Jeff Theusch <telepath75@hotmail.com>.

A special thank-you to alpha tester Colin O'Dell!

Library vector loading routines are adapted from those
in the source code of Ion and SOS by
Joe Wingbermuehle.

Thanks to TI for the TI-83+ SDK, which helped me LOADS
with programming for the TI-83!  What a great
readKey routine!

Thanks, ASM-83 mailing list at ticalc.org!

Thanks to James Matthews for his relatively helpful
asmguru.hlp!
